The present invention relates generally to computer systems and more particularly to a lightweight indicator of divergence of views for collaboratively shared user interface elements.
Collaborative applications allow parties at different geographical locations to work together in a same computer application over a computer network. With such collaborative applications, there are inherent delays in transmitting data over the network to the collaborating users. The extent of delay experienced by the respective users often varies. Thus, when one user manipulates a user interface element, the updating of the user interface required by the manipulation become evident to the respective users at different times. For example, suppose that a first user manipulates a mouse cursor that is viewed by all of the collaborating users. The display at the first user""s location may immediately update, but the displays at other ones of collaborating users are not updated until the appropriate information is conveyed over the computer network to the other users. Such delays are referred to as xe2x80x9clatency delays.xe2x80x9d A latency delay is the difference in time between when a user performs an action locally on a computer and when remote collaborating users see the action occur on their computers.
When remote users are collaboratively sharing a computer application, latency delays cause their views of the application""s user interface to diverge from time to time. For example, when a user manipulates an interface widget to a new position, the latency delays imply that some users will not see the widget in the new position for a delayed period of time. During the delayed period of time, the collaborating users do not share a consistent view of the application""s user interface. As a result, it is difficult for the users to smoothly coordinate their work.
Latency delays may vary dramatically among collaborating users. Latency delays often range from {fraction (1/10)} of a second to 3 to 4 seconds. The increased use of intermediate servers and proxies to get through network firewalls has increased latency delays experienced by many users. In addition, increased traffic over computer networks has increased latency delays.
Unfortunately, users tend to be unaware of the divergence of views caused by latency delays. Even in the instances in which the user may be aware of a divergence of views, the user has no way of knowing the amount of time it will take for all of the users to again share a common consistent view of the application""s user interface. This problem is particularly acute when users share a computer application that is designed for a single person but that is being used collaboratively with the assistance of an application sharing mechanism. The single user applications do not have any explicit divergence of views delay indicators because they are not explicitly designed for collaborative use.
The present invention addresses the above-described limitations of collaboratively used applications by providing a lightweight indicator of divergence of view for collaboratively used user interface elements. The lightweight indicator not only identifies if there is any divergence of views but also provides an indication of when the views will converge. As a result of the use of the indicator, a user is aware of any divergence of views and when the views will again coincide so that the user may tailor his/her actions accordingly. The indicator of divergence of view may take the form of graphical output, audio output or a combination thereof. For example, where the user interface element is a graphical widget, the appearance of the graphical widget may be slightly modified to indicate that there is a divergence of views and to identify when the views will fully converge. A xe2x80x9ctrailxe2x80x9d or xe2x80x9cshadowxe2x80x9d of interim images may be used to identify the extent of time that the views remain inconsistent. Alternatively, audio output may be generated that provides an indication that there is a divergence of views and that identifies the magnitude of the disparity. The magnitude of the disparity may be reflected in the intensity of the audio output or in the frequency of the audio output.
The indicator is xe2x80x9clightweightxe2x80x9d in at least two respects. First, the indicator is lightweight in that the indicator does not require a great deal of computational or memory overhead. Second, when the indicator is applied to a graphical widget, the indicator is lightweight in that it only subtly modifies the appearance of the graphical widget. As a result, users still recognize the graphical widget, and the user is not required to look at a separate field of view to identify any non-negligible divergence of views.
In accordance with one aspect of the present invention, a method is practiced in a computer system that is designed for facilitating collaboration via a collaborative application. The computer system includes a first computer having a first output device and a second computer having a second output device. These computers are loosely coupled. In accordance with the method, a user interface element is provided for the collaborative application in an initial state on the first output device and the second output device. In response to manipulation of the user interface element at the first computer, the user interface element is output in a modified state on the first output device and the user interface element on the first output device reflects a divergence of view of a given magnitude between when the user interface element in the modified state is output by the first output device relative to when the user interface element in the modified state is output by the second output device. The user interface element in the modified state at the first output device provides an indication of the magnitude of the divergence of views.
In accordance with another aspect of the present invention, a method is practiced by an intermediary that it is positioned between a first computer system having a display and a second computer system having a display. The intermediary facilitates the display of a common graphical widget at the displays of the first computer system and the second computer system. The position of the graphical widget is updated in response to an event. The updating of the displays at the computer system is begun to reflect the change of position of the graphical widget to a new position. A representation of the graphical widget is caused to be displayed on the one of the displays that updates more quickly. The representation indicates an extent of delay between when the respective displays update to reflect the change of position of the graphical widget to the new position.
In accordance with an additional aspect of the present invention, a mouse cursor is displayed on a display device of a selected user that collaborates with at least one remote user. The mouse cursor is displayed at an original position. The mouse cursor is moved to a new position in response to action by the selected user. The appearance of the mouse cursor is changed to indicate a divergence of views experienced by the remote user in updating a display of the remote user to display the mouse cursor at the new position and to identify the magnitude of the divergence of views. The appearance of the mouse cursor may change so as to have a hollowed out appearance. Furthermore, a trail of shadows that includes a trail of ghost cursors leading from the original position to the new position may be displayed to identify the magnitude of the latency delay.
In accordance with a further aspect of the present invention, a computer system provides assistance for collaborating between a first computer having a display device and a second computer having a display device. The computer system includes a means for intercepting events that occur at the computer and events that occur at the second computer. The computer system includes a means for causing a graphical widget to be displayed on both the first computer and the second computer. The computer system has a means for modifying how the graphical widget appears when displayed on the selected one of the computers to indicate an extent of a divergency of views between the selected computer and another of the computers when the means for intercepting events intercepts an event indicating that the state of the graphical widget has changed due to an action by a user at the selected computer.